package com.jxlc.framework.oauth2.domain.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;

import java.util.Set;

/**
 * OAuth2 访问令牌 DO
 * 如下字段，暂时未使用，暂时不支持：
 * user_name、authentication（用户信息）
 *
 */
@Data
public class AccessTokenDto {

    public AccessTokenDto(String loginType, Integer expiresTime, Object cacheObj){
        this(loginType, expiresTime);
        this.cacheObj = cacheObj;
    }

    public AccessTokenDto(String loginType, Integer expiresTime){
        this.loginType = loginType;
        this.expiresTime = expiresTime;
    }

    /**
     * 刷新令牌
     */
    private String refreshToken;
    /**
     * 用户编号
     */
    private Long userId;
    /**
     * 用户类型
     *
     */
    private String loginType;
    /**
     * 客户端主键
     *
     */
    private Long clientId;
    /**
     * 授权范围
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Set<String> scopes;
    /**
     * 过期时间
     */
    private Integer expiresTime;
    /**
     * 开启缓存，默认true
     */
    private boolean enableCache = true;
    /**
     * 缓存内容
     */
    private Object cacheObj;

}
